﻿#ifndef CONFIG_H
#define CONFIG_H

#include <QWidget>
#include <QSettings>
#include <QFile>
#include <QTextStream>
#include <QString>
#include <QVariant>
#include <QDebug>
#include <QMutex>

#include "CommonEnums.h"

class Config
{
public:
    Config(){}
    ~Config(){}
    //获取value值
    QVariant GetValue(const QString& key, const QVariant& defaultValue = QVariant()) const;
    //设置value值
    void SetValue(const QString& key, const QVariant& value);
    //获取configMap
    QMap<QString, QVariant> GetConfigMap();

private:
    //封装value映射
    QMap<QString, QVariant> m_ConfigMap;
};

class ConfigWriter
{
public:
    //写config对象到文件
    void WriteConfigToFile(const QString& filePath,Config& config);
    //读取文件的Config对象
    Config ReadConfigFromFile(const QString& filePath);
private:
    QMutex mutex; // 将互斥锁作为成员变量
};

#endif // CONFIG_H
